package com.enjoyor.soa.traffic.api.service.dubbo.bigdata;

import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.Date;

/**
 * 高活跃度车分析服务
 */
public interface DubboAnalyzeHighActiveService {

	/**
	 * 对高活跃度车辆进行分析并获取结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param avgDuration 日均时长（分）
	 * @param avgTravelFreq 日均次数
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 是否包含营运车辆
	 * @param page 分页
	 * @return Page &lt; HighActiveVehicle &gt; ：包含高活跃度车信息 的分页集合
	 */
	public ResultPojo analyzeHighActiveVehicle(String token, String licenseType, String licenseNum, Integer avgDuration, Integer avgTravelFreq, Date startDay, Date endDay, boolean includeTaxi, Page page);


	/**
	 * 导出高活跃度车辆分析结果
	 *
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param avgDuration 日均时长（分）
	 * @param avgTravelFreq 日均次数
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 是否包含营运车辆
	 * @param startIndex 导出起始数据，默认 1
	 * @param endIndex 导出起始数据，默认 5000
	 * @return List &lt; HighActiveVehicle &gt; ：包含高活跃度车信息 的集合
	 */
	public ResultPojo expHighActiveVehicle(String token, String licenseType, String licenseNum, Integer avgDuration, Integer avgTravelFreq, Date startDay, Date endDay, boolean includeTaxi);
	public ResultPojo expHighActiveVehicle(String token, String licenseType, String licenseNum, Integer avgDuration, Integer avgTravelFreq, Date startDay, Date endDay, boolean includeTaxi,int startIndex,int endIndex);

	/**
	 * 高活跃度车辆分析结果 总记录数
	 * @param token
	 * @param licenseType 号牌类型
	 * @param licenseNum 号牌号码
	 * @param avgDuration 日均时长（分）
	 * @param avgTravelFreq 日均次数
	 * @param startDay 分析起始日期
	 * @param endDay 分析截止日期
	 * @param includeTaxi 是否包含营运车辆
	 * @return
	 */
	public ResultPojo countHighActiveVehicle(String token, String licenseType, String licenseNum, Integer avgDuration, Integer avgTravelFreq, Date startDay, Date endDay, boolean includeTaxi);

}
